有人在MC复刻《最伟大的作品》,有人用红石做卷积神经网络,还被LeCun转发
大数据文摘出品
周董的《最伟大的作品》MV毫无意外地火了。
B站1500万+播放,70万+弹幕,直接顶流,这也带动了很多up主的二次创作,B站甚至出现了一个杰威尔音乐发起的视频活动,叫“#周杰伦新歌二创大赛”。
真·自己鬼畜自己……
比如这位up主,直接在MC(Minecraft,我的世界)中还原周杰伦《最伟大的作品》!
Up主 @-六氟化氙- 解释道,视频中棕色的方块可以发出各种音符的声音,然后用一定的速度把他们连接起来就可以做出一首音乐了。
当然,这显然不是MC能做的“最伟大的作品”,MC能做的可太多了!比如最近在B站上热门的一个视频——《世界首个纯红石神经网络!真正的红石人工智能》。
你敢信?
这个在MC中用红石创造的人工智能模型,是一个LeNet-5架构的手写数字识别模型,熟悉AI的同学,应该都知道这个架构,可以说是AI领域的入门经典模型了,相当于编程中“Hello World”。
但是这样的输入方式,大家大概都没见过。
MC中第一个LeNet-5架构神经网络
先带大家看一下MC中第一个LeNet-5架构的神经网络完成版大概的样子。
首先,你得在一块输入板上写下一个数字,这包括一个单脉冲式压力板和一个15×15的坐标屏幕(如上图)。
你在压力板上走出的轨迹就会显示在上面的坐标屏幕中。
随后,你输入的手写数字就会进入卷积层。
当然,因为卷积核没法移动,所以up主直接采取了堆叠的结构,就是搞N个卷积核,放到所有该进行卷积计算的位置,而后通过硬连接线连接到输入板上。
同时,为了保证非线性性,输出还要经过ReLU函数,因为卷积核只有3×3,所以可以直接使用模电运算,并在输出端直接连接ReLU。
然后就是全连接层。
全连接层每层由若干个神经元构成,每个神经元都连接多个输入,并产生一个输出,神经元会将每个输入加权累加,然后代入一个激活函数输出。
加权求和是“线性分割”,而激活函数一定是非线性的,用于提升维度。
该模型使用tanh作为激活函数。
权重被储存在投掷器里(调整物品配比生成不同的频率的随机串),输入乘以权重后通过模电累加。
当然,这里合作者们采用了非常多巧妙的方式在MC中实现这一过程。下面是实际的神经元电路。
堆叠神经元,就得到了整个全连接层。
在最后的输出层(以及层间缓存)需要使用这样一个模电计数器。
这个计数器可以统计模型输出的结果,并且显示到计数板上。
最后电路会选取可能性最大的那个,将结果显示到输出版面上,该模型在MNIST数据集上准确率可以达到80%。
最后再来看一下整个模型的总览,是不是很壮观?
进行一次预测计算需要20分钟
在MC中完成这项非凡壮举的除了up主本人,还有其他合作者。
这个项目也被上传至GitHub,有兴趣的同学可以去看看。
https://github.com/leamoon/StochasticNet
作者表示,他们使用了非传统的计算方式——随机计算来实现神经网络,使得设计和布局上比传统的全精度计算简单许多,且单次理论识别时间仅为5分钟。受限于Minecraft的运算能力,实际识别时间超过20分钟。
并且模型的权重也是训练好了输入进模型的,在MC中训练模型估计还是不太现实。
视频一经发出,也在B站引发了很多讨论。
比如:CPU表示不服~
还有:以后就不用TensorFlow和Pytorch了……
不得不说,最重磅的还得是这一位。
2018年图灵奖获得者,LeNet架构提出者Yann LeCun教授在Twitter和Facebook上转发了这个项目!
这一波,可以说是非常惊喜了。期待以后还能在MC看到他们更多有意思的作品!